interface TodoItem {
  id: string // id
  title: string // 标题
  group: string // 分组
  isDone: boolean // 是否完成
  createDate: string // 创建时间
  updateDate: string // 更新时间
  doneDate: string // 完成时间
  deadlineDate: string // 截止时间
  isDelete: boolean // 是否删除
  isImportant: boolean // 是否重要
  content: string // 内容
  description?: string // 描述
}

interface TodoNavItem {
  id: string
  name: string
  path: string
  icon: string
}

interface TodoGroup {
  todoList: TodoItem[]
  expand: boolean
  groupName: string
  todoGroupName: string
  path: string
}

interface TodoTaskGroupMap {
  [key: string]: TodoItem[]
}

interface AppStoreState {
  todoList: TodoItem[]
  taskGroupPathMap: {
    [key: string]: string
  }
}

interface TodoState {
  todo?: TodoItem
  todoList: TodoItem[]
  todoNavList: TodoNavItem[]
  rightMenuTodo?: TodoItem
  trashList: TodoItem[]
}

interface HabitItem {
  id: string
  name: string
  group?: string
  icon: string
  frequency: {
    type: 'daily' | 'weekly' | 'custom' | string // 频率类型
    days?: number[] // 如果是weekly，可以是[0,1,3,5]表示周日、周一、周三、周五
    customDays?: number // 如果是custom，可以是每隔几天
  }
  holdTime: string
  streakDays: number // 当前连续坚持天数
  totalCompletedDays: number // 总共完成天数
  checkInRecords: string[] // 打卡记录，使用日期作为键
  lastCheckInDate?: string // 最后一次打卡日期
  createDate: string
  startDate: string
  endDate: string
}

interface HabitState {
  habitList: HabitItem[]
  currentHabit?: HabitItem
}
